
#if !defined( __TAG_H__)
#define __TAG_H__

#include "TFstd.h"
#include "TFString.h"
namespace tagfolder{

    /**
     *  Tag definition;
     */
    class Tag{
        public:
            Tag();
            Tag( Tag& tag);
            virtual ~Tag();
            virtual Tag& operator = ( Tag& tag);
            virtual bool operator == ( Tag& tag);
            virtual unsigned long getHashCode() const;
            virtual const char* getChars() const;
        private:
            void computeHashCode();
        protected:
            unsigned long m_hash;
            TFString    m_tag;
    };
}

#endif // #if !defined( __TAG_H__)
